package com.xue.util;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
import java.util.UUID;

/**
 * 
 * @ClassName: UUIDUtil 
 * @Description: 生成唯一ID类
 * @author zzx
 *
 * @date 2020年1月6日
 */
public class UUIDUtil {

	/**
	 * 
	 * @Title: uuid  
	 * @Description: 生成 32 位随机字符串包含：数字 小写字母
	 * @param @return    参数  
	 * @return String    返回类型  
	 * @throws  
	 * @author zzx
	 * @date 2020年1月6日
	 */
	public static String uuid() {		
        return UUID.randomUUID().toString().replace("-", "");
    }
	/**
	 * 
	 * @Title: getId  
	 * @Description: 生成唯一ID: 30位 
	 * 					前14位当前日期 年（4位） 月（2位） 日（2位） 时（2位）分（2位）秒（2位）
	 * 					后16位 随机生成的数字字符串。
	 * @param @return    参数  
	 * @return String    返回类型  
	 * @throws  
	 * @author zzx
	 * @date 2020年1月6日
	 */
	public static String getId() {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
		String rStr = getRandomStringNum(16);
		String str = sdf.format(new Date())+rStr;
		return str;		
	}
	/**
	 * 
	 * @Title: getRandomStringNum  
	 * @Description: 生成指定长度字符串，只包含数字
	 * @param  length    字符串长度
	 * @return String    返回类型  
	 * @throws  
	 * @author zzx
	 * @date 2020年1月6日
	 */
	public static String getRandomStringNum(int length){
	     //String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
		 String str="0123456789";
	     Random random=new Random();
	     StringBuffer sb=new StringBuffer();
	     for(int i=0;i<length;i++){
	       int number=random.nextInt(10);
	       sb.append(str.charAt(number));
	     }
	     return sb.toString();
	 }
	 /**
	 * 
	 * @Title: getRandomString  
	 * @Description: 生成指定长度随机字符串 ：包含 大小写字母 数字
	 * @param length 字符串长度
	 * @param @return    参数  
	 * @return String    返回类型  
	 * @throws  
	 * @author zzx
	 * @date 2020年1月6日
	 */
	 public static String getRandomString(int length){
	     String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
	     Random random=new Random();
	     StringBuffer sb=new StringBuffer();
	     for(int i=0;i<length;i++){
	       int number=random.nextInt(62);
	       sb.append(str.charAt(number));
	     }
	     return sb.toString();
	}
	
	public static void main(String args[]) {
		String str = getId();
		System.out.println("ID:"+str);
	}
}
